package cn.tedu.jsd2207.controller;

import cn.tedu.jsd2207.util.DefaultMsg;
import cn.tedu.jsd2207.util.PayUtil;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

/**
 * 测试控制器
 */
@Controller
public class TestController {

    /**
     * 跳转到支付界面
     * @return
     */
    @RequestMapping("/test")
    public String test(){
        return "test";
    }


    /**
     * 支付的方法
     * @return
     */
    @RequestMapping("/pay")
    @ResponseBody
    public DefaultMsg pay(String oid, String oname, String money, String desc, Model model){
        //先去查询该订单是否支付成功
        DefaultMsg defaultMsg = PayUtil.payQuery(oid);
        //支付成功
        if(defaultMsg.getSuccess()==1){
           //更改订单的付款状态
            System.out.println("更改订单的支付状态");
            defaultMsg.setSuccess(0);
            defaultMsg.setError("该订单已经支付,订单状态已更新");

        }else{
            defaultMsg = PayUtil.pay(oid,money,oname,desc);
        }
       // DefaultMsg defaultMsg = PayUtil.pay(oid,money,oname,desc);
        return defaultMsg;
    }


    /**
     * 支付成功 支付宝自动去调用的路径
     * @return
     */
    @RequestMapping("/paySuccess")
    @ResponseBody
    public DefaultMsg paySuccess(HttpServletRequest request) throws Exception{
        DefaultMsg defaultMsg = PayUtil.paySuccess(request);
        //更改订单的付款状态
        if(defaultMsg.getSuccess()==1){
            //获取订单号 更改支付状态
            String oid = (String)defaultMsg.getTarget();
            System.out.println("更改订单的支付状态");
        }
        return  defaultMsg;
    }

    /**
     * 看订单是否支付成功，如果成功改变订单状态
     * @return
     */
    @RequestMapping("/payCheck")
    @ResponseBody
    public DefaultMsg payCheck(String oid) throws Exception{
        //先去查询该订单是否支付成功
        DefaultMsg defaultMsg = PayUtil.payQuery(oid);
        //更改订单的付款状态
        if(defaultMsg.getSuccess()==1){
            System.out.println("更改订单的支付状态");

        }else{
            defaultMsg.setSuccess(0);
            defaultMsg.setError("订单未支付成功");

        }
        return  defaultMsg;
    }

}
